Interlaced and non-interlaced (or progressive) image formats are two general image formats, and need to be processed by a variety of image systems when transmitted among those image systems. An interlaced image can be converted into a non-interlaced image by a de-interlacing operation. For example, referring to FIG. 1A, by estimating respective missing scan lines (as indicated by dashed lines) of an odd-field interlaced image field 11 and an even-field interlaced image field 12 through a de-interlacing operation 13, two non-interlaced image frames 14 and 15 with a full number of scan lines can be obtained.
The de-interlacing operation 13 can be implemented by way of interpolation. More specifically, a pixel value of a missing pixel can be estimated by way of interpolation according to pixel values of adjacent pixels in upper and lower existing lines, which is referred to as a line-averaging method. Such a de-interlacing method, however, is likely to cause image distortion and/or flicker problems. For solving these problems, block-based motion estimation conventionally used for video compression is applied for de-interlacing. Since two continuously displayed image fields are generally highly correlated to each other, the block-based motion estimation is performed based on adjacent fields.
A scheme of block-based motion estimation is depicted in FIG. 1B. In the block-based motion estimation method, a block 18 with a preset size, for example 8*8 pixels, is specified in the current field (n) with a pixel to be estimated centering thereon. On the other hand, a plurality of candidate blocks within a search window 17 are located according to information of the specified block 18 and a plurality of preset vectors, respectively. For each pair of pixels at corresponding positions of the specified block 18 in the current field (n) and each of the candidate blocks of the preceding field (n−1), a difference in pixel values such as RGB values is calculated. Then absolute values of all the pixel difference values of each candidate block are summed to determine a block difference value. By comparing the block difference values of the candidate blocks, the one having the smallest block difference value from the specified block 18 can be determined as a best matching block 19. Meanwhile, the motion vector 16 indicating the best matching block 19 is an optimal motion vector.
When applying the block-based motion estimation to a de-interlacing process, wherein the fields (n−1) and (n) are of opposite parity fields, a problem that there are no simultaneously existing pixels at corresponding positions of the specified block and the candidate blocks is encountered. Therefore, a variety of methods for calculating block difference values have been developed to determine the best matching block and motion vector.
Please refer to FIG. 2A, wherein column pixels of two continuous interlaced fields of opposite parity fields at corresponding positions are shown side by side in the plot. The same references (y−3)˜(y+3) represent pixels at the same positions of the two interlaced fields (n) and (n−1), wherein pixels (y−3)˜(y+3) are a series of adjacent pixels in the same column. In the column of the interlaced field (n), solid circles represent existing pixels while dashed triangles represent missing pixels; and in the column of the preceding interlaced field (n−1), solid circles represent existing pixels while dotted circles represent missing pixels. The missing pixels in the field (n−1) represented by the dotted circles have been de-interlaced previously in a similar motion-estimation way. Based on currently available color values, block-based motion estimation is performed as described above with reference to FIG. 1B. For example, for estimating the pixel (n,y) of the interlaced field (n), a specified block containing and centered on the pixel (n,y) and a plurality of candidate blocks in the preceding interlaced field (n−1) are defined. Then respective block difference values between the specified block and the candidate blocks are calculated. Among them, the smallest block difference value is determined, and the best matching block is thus the candidate block having the smallest difference value. Accordingly, the optimal motion vector, e.g. the vector CP, can be obtained.
Since the pixel (n,y) is actually missing in the interlaced field (n), its own pixel difference value cannot be calculated. Instead, pixel values of existing pixels in the specified block are used for calculating the block difference values along with pixel values of the corresponding pixels in the candidate blocks. The corresponding pixels, however, are actually missing but previously de-interlaced. Therefore, the block-based motion estimation is based on estimated data, which if not well de-interlaced, would result in error propagation and even image distortion.
FIG. 2B illustrates another method for searching a best matching block and determining an optimal motion vector. As a matter of fact, a best matching pair of blocks, instead of a best matching block, are searched in this prior art. Column pixels of three continuous interlaced fields (n−1), (n) and (n+1) at corresponding positions are shown side by side in the plot. In this prior art, interfaced fields (n−1) and (n+1) of the same field are used for obtaining the estimated motion values and motion vectors of the target interlaced field (n). A plurality of pairs of candidate blocks are respectively searched from the interfaced fields (n−1) and (n+1), wherein each pair of candidate blocks have respective center pixels aligned with the pixel (n,y) in the same line. Then respective block difference values between the pairs of candidate blocks are calculated. Among them, the smallest block difference value is determined, and the best matching pair of blocks is thus the pair of candidate blocks having the smallest difference value. Accordingly, the optimal motion vector, e.g. the vector CB, can be obtained. In this prior art, the missing pixel values of the interlaced field (n) are determined according to the pixel values of adjacent fields (n−1) and (n+1) while involving no existing pixel values of the interlaced field (n) itself. Therefore, errors are likely to occur particularly when the pixel to be estimated does not exist in the neighbor fields (n−1) and (n+1).